package com.fxw.config;

import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
import org.springframework.lang.Nullable;

/**
 * @ClassName MyRoutingDataSource
 * @Deacription  利用DatabaseContextHolder 获取当前线程的 datasourcetype,动态数据源（需要继承AbstractRoutingDataSource）
 * 基于特定的查找key路由到特定的数据源。它内部维护了一组目标数据源，并且做了路由key与目标数据源之间的映射，提供基于key查找数据源的方法。
 * @Author hqq
 * @Date 2021/10/25 21:55
 * @Version 1.0
 **/
public class MyRoutingDataSource extends AbstractRoutingDataSource {

    @Nullable //表示定义的字段可以为空.
    @Override
    protected Object determineCurrentLookupKey() {
        return DBContextHolder.get();
    }
}
